6 - Rechnerarchitektur [ID:10860]
50 von 814 angezeigt

Okay, gut, dann können wir starten.

Ja, also willkommen zur Vorlesung der Woche.

Wir wollen, also ich möchte diese Stunde, das Kapitel Cash abschließen.

Wir hatten uns letzte Woche mit dem Thema schon auseinandergesetzt.

Ja, ich suche noch den hernächst.

Ah, da ist er ja.

Wir müssen noch ein Ende der Vorlesung unterhalten mit diesen Ride Allocate und Ride Buffer

Techniken.

Und ja, ich habe da nochmal drüber nachgedacht.

Also im ersten Moment sieht es natürlich tatsächlich so aus, bei einer Ride Allocate

Strategie, also Ride Allocate, das heißt er nochmal ergreift auf den, das sind die

Probleme, wenn er einen Ride Miss hat.

Da habe ich was gesucht, das habe ich leider noch nicht mehr gefunden, das ist jetzt der

Grund, weshalb ich ja zu spät komme.

Und ja, also beim Ride Miss, er will was schreiben, aber es ist nicht im Speicher.

Jetzt könnten wir ja annehmen, hm, dann muss er ja doch, muss er ja eigentlich gar nicht

mehr auf den Speicher zugreifen, was soll es, er will ja eh was schreiben.

Hat hier seinen Cash, hier ist der Speicher und hier ist die CPU mit ihrem Register.

So und ich will jetzt irgendwas schreiben in den Cash.

Naja, nachdem er es eh schreiben will, ist es ja eigentlich egal, dann muss er es doch

vorher gar nicht mehr lesen, könnte man annehmen, ne.

Aber das Problem ist ja, der verwaltet das Ganze immer in Blöcken.

Das heißt, also das, mir regnet es von einem Ride Miss.

Er will was schreiben, eine Zeile, die nicht im Cash ist.

Da, was tun, er muss es trotzdem erstmal lesen, weil er muss ja die komplette, also er will

bloß einen Register schreiben, dazu wäre der Block.

Er könnte natürlich damit zufrieden sein, genau diese eine Adresse dazu beschreiben.

Aber diese Adresse ist ja Teil eines Blocks, den er nicht kennt, deswegen muss er tatsächlich

erst das hier einlesen, also das ist jetzt dieser Block, damit er auch die anderen Werder

hier hat.

Der hier wäre vielleicht uninteressant, das ist tatsächlich der, den er überschreiben

will.

Aber die anderen hier, die brauche er und deswegen muss er das mit einlesen.

Gut, jo.

Frage dazu, was ist das dann parallel, das heißt, dass die CPU eventuell auf anderen

Blöcken weiter rechnen kann, während die anderen auf die Memory blöcken oder?

Das geht bei sogenannten Non-Blocking Caches.

Da komme ich nachher noch drauf, da sage ich noch ein paar Worte dazu.

Und unter anderem gibt es da die eine Technik der Transactional Memories, das heißt, da

werden bestimmte Speicher, Zugriffe zusammengefasst vom Cache und die werden dann in einem Satz

behandelt.

Und das machen die neuen Haswell Mikroarchitektur und so, das schauen wir uns aber im nächsten

Kapitel an, wenn ihr nach der Modulierung dann einzelne Beispiele, wie es im Realen

tatsächlich gemacht ist, mal hier behandeln wollt.

So, vielleicht fasse ich das noch einmal ein bisschen zusammen, was ich am Ende der letzten

Stunde noch einmal gemacht habe.

Also wir hatten noch einmal uns damit beschäftigt mit Read, Read-Zugriffe, Cache und haben gesagt,

die kommen häufiger vor als die Write-Zugriffe beim Cache.

Was ich hier machen kann zur Optimierung beim Lesen ist, auswerten des Tags und Zugriff

auf dem Cache, also die Information Lesen, gleichzeitig.

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

01:32:16 Min

Aufnahmedatum

2013-11-21

Hochgeladen am

2019-04-30 04:19:03

Sprache

de-DE

Die Vorlesung baut auf die in den Grundlagen der Rechnerarchitektur und -organisation vermittelten Inhalte auf und setzt diese mit weiterführenden Themen fort. Es werden zunächst grundlegende fortgeschrittene Techniken bei Pipelineverarbeitung und Cachezugriffen in modernen Prozessoren und Parallelrechnern behandelt. Ferner wird die Architektur von Spezialprozessoren, z.B. DSPs und Embedded Prozessoren behandelt. Es wird aufgezeigt, wie diese Techniken in konkreten Architekturen (Intel Nehalem, GPGPU, Cell BE, TMS320 DSP, Embedded Prozessor ZPU) verwendet werden. Zur Vorlesung werden eine Tafel- und eine Rechnerübung angeboten, durch deren erfolgreiche Beteiligung abgestuft mit der Vorlesung 5 bzw. 7,5 ECTS erworben werden können. In den Tafelübungen werden die in der Vorlesung vermittelten Techniken durch zu lösende Aufgaben vertieft. In der Rechnerübung soll u.a. ein einfacher Vielkern-Prozessor auf Basis des ZPU-Prozessors mit Simulationswerkzeugen aufgebaut werden. Im Einzelnen werden folgende Themen behandelt:
  • Organisationsaspekte von CISC und RISC-Prozessoren

  • Behandlung von Hazards in Pipelines

  • Fortgeschrittene Techniken der dynamischen Sprungvorhersage

  • Fortgeschritten Cachetechniken, Cache-Kohärenz

  • Ausnutzen von Cacheeffekten

  • Architekturen von Digitalen Signalprozessoren

  • Architekturen homogener und heterogener Multikern-Prozessoren (Intel Corei7, Nvidia GPUs, Cell BE)

  • Architektur von Parallelrechnern (Clusterrechner, Superrechner)

  • Effiziente Hardware-nahe Programmierung von Mulitkern-Prozessoren (OpenMP, SSE, CUDA, OpenCL)

  • Leistungsmodellierung und -analyse von Multikern-Prozessoren (Roofline-Modell)

Empfohlene Literatur
  • Patterson/Hennessy: Computer Organization und Design
  • Hennessy/Patterson: Computer Architecture - A Quantitative Approach

  • Stallings: Computer Organization and Architecture

  • Märtin: Rechnerarchitekturen

Einbetten
Wordpress FAU Plugin
iFrame
Teilen